var express = require('express');
var router = express.Router();
// 导入 moment
const moment = require('moment');
// 导入文档对象
const AccountModel = require('../../models/AccountModel');

// 记账本的列表
router.get('/account', async (req, res, next) => {
   // 获取所有账单信息
   // let accounts = db.get('accounts').value()
   // 读取集合信息
   let accounts = await AccountModel.find().sort({ time: -1 })
   // 响应成功的提示
   res.json({
      // 响应编号
      code: '0000',
      // 响应的信息
      msg: '读取成功',
      // 响应的数据
      data: accounts
   })
});

// 新增记录
router.post('/account', async (req, res) => {
   // 查看表单数据
   // 插入数据库
   let result = await AccountModel.create({
      ...req.body,
      // 通过 moment 将日期字符串转化为日期对象
      time: moment(req.body.time).toDate()
   })
   // if (result.properties) {
   //    // 失败提醒
   //    res.json({
   //       code: '1002',
   //       msg: '创建失败',
   //       data: null
   //    })
   //    return
   // }
   // 成功提醒
   res.json({
      code: '0000',
      msg: '创建成功',
      data: result
   })
})

// 删除记录
router.delete('/account/:id', async (req, res) => {
   // 获取params的id参数
   let id = req.params.id
   // 删除
   let result = await AccountModel.deleteOne({ _id: id })
   if (result.deletedCount) {
      // 提醒
      res.json({
         code: '0000',
         msg: '删除成功',
         data: {}
      })
   } else {
      res.json({
         code: '1003',
         msg: '删除失败',
         data: null
      })
   }
})

// 获取单个账单信息
router.get('/account/:id', async (req, res) => {
   // 获取id参数
   let { id } = req.params
   // 查询数据库
   let result = await AccountModel.findById(id)
   // 成功提醒
   res.json({
      code: '0000',
      msg: '查询成功',
      data: result
   })
})

// 更新单个账单信息
router.patch('/account/:id', async (req, res) => {
   // 获取id
   let { id } = req.params
   // 操作数据库
   let result = await AccountModel.updateOne({ _id: id }, req.body)
   if (result.matchedCount) {
      let result1 = await AccountModel.findById(id)
      // 成功提醒
      res.json({
         code: '0000',
         msg: '修改成功',
         data: result1
      })
   }
})

module.exports = router;
